Skip to content

docs(errata): PR1 of 2 — false-claim corrections from #4984 campaign errata - #5030

Merged
phasetr merged 14 commits into
mainfrom
docs/4984-errata-pr1-false-claims
Aug 11, 2026
Merged

docs(errata): PR1 of 2 — false-claim corrections from #4984 campaign errata#5030
phasetr merged 14 commits into
mainfrom
docs/4984-errata-pr1-false-claims

Conversation

@phasetr

@phasetr phasetr commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Purpose

PR 1 of 2 in the capped errata-correction window authorized per Codex's final ruling in
.self-local/reports/dev-review-4984-post-triage-remainder.md (item 1: "scope down and
AUTHORIZE NOW, hard cap 2 PRs / ~12-20 h"). This PR corrects false/misleading substantive prose
(declaration docs, module headers, docs/index.md) found during the #4984 header-rewrite
campaign. It does not touch declaration deletion, renaming, imports, umbrellas, D1/#5028, or any
mechanical citation population (those are excluded per the ruling and/or handled elsewhere).

Scope (verified live against merge base 532fe328a9bcf67d9797790ae07052cc310d3439 before

scaffolding)

Exclusions (binding, per the ruling)

No declaration deletion or rename, no import/umbrella changes, no D1/#5028 work, no PR #N
provenance cleanup, no corpus-wide audit, no new scanners/gates/baselines, no blanket
substitutions, no third PR.

Review history (4 rounds; per-round dev-review reports and codex cross-review logs under

.self-local/reports/)

  • Round 1 (dev-review-errata-pr1-round1.md, head 6d98659a): CHANGES REQUESTED, 3 High
    (H1 docs/index.md:1901 title/body self-contradiction at the feat(gj-17.5.1): UNCONDITIONAL faithful correlation profile lower bound on the window — #4320 #4333 row, H2 false "never by an
    equality" claim at the same row, H3 a false universal-negative claim in
    MagnetizationInfiniteSusceptibility.lean:50-51) + 2 Med + 6 Low found and fixed in
    follow-up.
  • Round 2 (dev-review-errata-pr1-round2.md, head 865325e1): CHANGES REQUESTED, 2 Med, 0
    High
    — both self-inflicted by round-1's rewrite (new ambiguity/overstatement introduced while
    fixing the High items) — found and fixed.
  • Round 3 (dev-review-errata-pr1-round3.md): CHANGES REQUESTED, 1 Med, 0 High — an
    ambiguous comparator phrase ("smaller ρ") whose nearest anchor made the clause false — found
    and fixed.
  • Round 4 (dev-review-errata-pr1-round4.md, head 9a477386): APPROVE, 0 High, 0 Med, 2
    non-blocking Low left deliberately unfixed per the reviewer's own recommendation (four rounds of
    re-editing the same sentence risks introducing a fresh nit; the current text is not false — both
    Lows are scoping-precision nits, independently confirmed by codex as Low/downgraded-from-Med).
    Independent codex cross-review ran and concurred at every round (round 4: 1 Med + 1 Low raised,
    the Med re-derived and downgraded to Low with no factual disagreement, see round-4 report §7).

Evidence all gates pass (round 4, re-derived from Lean sources, head 9a477386)

  • lake build: green, zero warning:, zero error: (round-4 §5's AC4 byte-identity argument
    makes this a corollary — see below — and gh pr checks 5030 on this exact head is green:
    build pass, evaluate pass, header-inventory-claim-ratchet pass, import-dag-contract pass,
    completion-claim/live pass, discover pass).
  • scripts/header_inventory_claim_ratchet.py --check: baseline 151 charges / 79 keys, live
    151 / 79, PASS, unchanged from the merge base through all 4 rounds (no charged key touched by
    this PR's diff).
  • AC4 (comment-only): re-derived whole-PR in round 4 with an independent Lean comment stripper
    (nested /- -/, --, string/char literal handling) — 28/28 Lean files byte-identical in code
    between main and HEAD; 0 code changes; comment nesting balances in every file. The only
    non-Lean file touched is docs/index.md (prose only).
  • Dangling-name check: every backticked Lean-shaped identifier introduced by the PR (41
    distinct) resolves to a token present under IsingModel/; zero dangling citations introduced.
  • Zero Japanese: rg "[ぁ-んァ-ン一-龯]" docs/index.md README.md → 0 matches.
  • audit_gate.py --full / citation_audit.py: not re-run in round 4 (risk bounded to zero by
    the AC4 byte-exactness result above — comment-only diff cannot change axioms/sorry/admit
    surface); last run green on d689e6d1 per the Errata: 4 further pairs of alpha-identical declarations in the LGC Complex layer, 2 doc comments stating hypotheses their statements do not carry, and a stale import-preservation note #5002 mirror disposition, and CI's own build
    job (which includes the full lake build) passed on this exact head.
  • File scope: 29 files changed (28 IsingModel/**.lean comment-only + docs/index.md prose),
    1:1 mapping to the 10 authorized issues verified in round 1 and re-verified whole-PR in round 4
    (no file outside the 10-issue scope; no scripts/, no baselines, no new/deleted/renamed files).

Test plan

  • grep -rn "sorry" IsingModel/ stays empty (doc-only edits; no proof-term changes).
  • Local build/lint/#print axioms verified per lean-verify-audit (green, see above).
  • Independent cross-review (dev-cross-cli-review, codex exec) ran at every round; concurred.
  • Each corrected claim re-derived against the live merge base at fix time and again independently
    in round 4 (issue-body numbers in this campaign have repeatedly been found stale).

Refs #4987
Refs #5000
Refs #5002
Refs #5005
Refs #5008
Refs #5011
Refs #5017
Refs #5019
Refs #5022
Refs #5026

This was referenced Aug 11, 2026
phasetr and others added 13 commits August 11, 2026 20:13
Six module headers expanded the `vd` prefix as "van-den-Berg". In this
repository `vd` abbreviates vertex-disjoint: `vdCompatiblePolymerFamilies`
is defined by filtering on `IsCompatiblePolymerFamilyVertexDisjoint`
(`ClusterExpansion/Families/VertexDisjoint.lean`), and no van den Berg
result is cited anywhere in the tree.

Verified: `grep -rn "Berg" IsingModel/ docs/ README.md scripts/` returned
these six lines before and returns nothing after. Comment-only.

Refs #4987

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`freeEnergyAlongExhaustion_latticeGraph_eq_log_div_card` was documented as
an "alternate form of `freeEnergyAlongExhaustion_eq_inv_card_mul_log` using
the Fintype-card expression", but the lemma it names already uses
`Fintype.card`, so no distinction is being drawn. The doc now records that
the two conclusions are the same proposition and differ only in the ambient
lemma delegated to, and points at
`freeEnergyAlongExhaustion_latticeGraph_eq_inv_Λcard_mul_log` as the
genuinely different cardinality spelling.

Verified in Lean: `@..._eq_log_div_card = @..._eq_inv_card_mul_log := rfl`
is accepted, at both the lattice-graph and the ambient layer. Comment-only;
no declaration is added, removed or renamed.

Refs #5000

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`correlationInfinite_le_const_mul_beta_of_high_temp` was documented as
holding "For `0 ≤ J`, `1 ≤ d`, `0 < b` ...", but its binder telescope
carries no `1 ≤ d`; the dimension bound is dropped from the prose.

`freeEnergyComplex_continuousAt_real_pos_h_latticeGraph` was documented as
continuity at "real positive `h₀`", but it takes `(h₀ : ℝ)` with no
positivity hypothesis and holds at every real `h₀`. The headline is
corrected and the mismatch with the `_pos_h_` in the name is recorded.

Both telescopes read off `#check`. Comment-only; the names are left alone,
since renaming is a separate decision.

Refs #5002

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
correlation length

Three sites asserted that `−log tanh(βJ)`, or a finite-region infimum of
per-pair pseudo-masses, *is* the inverse correlation length. The tree
proves only bounds: `latticeMass_le_neg_log_tanh_betaJ`,
`latticeMass_two_sided_bound`, and
`onAxisInverseCorrelationLength_le_neg_log_tanh` are all inequalities, and
no equality with that rate exists anywhere.

* `UnconditionalFiniteRegionLipschitz.lean` header: "faithful
  inverse-correlation-length rate" -> "direct-path rate", the name the
  neighbouring `LatticeMassHighTemperature/UpperBound.lean` already uses.
* `finiteRegionPseudoMassDist`: the claim that the finite infimum "is the
  genuine inverse correlation length restricted to `A`" is replaced by the
  faithful-radius statement plus an explicit note that no relation to
  `latticeMass` is proved here. Measured at the merge base: the file sets
  mentioning `finiteRegionPseudoMassDist` (24) and `latticeMass` (85)
  intersect in zero files.
* `docs/index.md` #4333 row: it simultaneously claimed the `hprofile` of
  #4330-#4332 "is now an unconditional theorem" and, in parentheses, that
  the theorem is at a different rate. The row now states that the
  unconditional bound does not discharge that binder -- `#check` shows the
  binder is `pseudoMassG α ρ (−log(βJ·2d))` at a fixed radius while the
  theorem is `pseudoMassG α (latticeDistance d x z) (−log tanh(βJ))` -- and
  names the rate-agnostic engine as what it does discharge.

Lean changes are comment-only. `citation_audit.py` is unaffected: the
findings/ratchet counts are identical with the merge base's `docs/index.md`.

Refs #5005

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The docstring of `truncated4Infinite_J_zero_of_pairwise_distinct` called
the closed form `-2·tanh(β·h)^4` "(non-vanishing)". `Ferromagnetic ⟨0,h,β⟩`
only requires `0 ≤ h`, so `h = 0` is admissible and there the form is `0`.

Replaced by the zero/nonzero split over the admissible range, matching the
already-corrected sibling in `TwoPointTruncatedTrivialSlices.lean`. Both
halves checked in Lean: `-2 * Real.tanh (β * 0) ^ 4 = 0`, and
`-2 * Real.tanh (β * h) ^ 4 < 0` for `0 < h`, `0 < β`. The surrounding
`-2·t⁴ ≤ 0` sentence was correct and is kept. Comment-only.

Refs #5008

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`partitionFunctionAlongExhaustion_high_temp_expansion_h_zero_pow_two_lt_of_nonempty`
was documented as holding "under nonempty volume". Its hypotheses are
`0 < β * J` and `0 < |E|`; it takes no `(Λ.volume n).Nonempty`, unlike the
`_of_nonempty` wrappers in `HighTemperatureBoundsRatioLogFeNonempty`, which
do take it and convert it with `hne.card_pos`.

The doc now names the hypotheses it actually has and records the divergence
from its siblings. Telescope read off `#check`. Comment-only; the duplicate
declaration itself is left in place.

Refs #5011

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* `magnetizationΛ_ge_tanh`: "`|A|^1 = |A|.card = 1`" is not a well-formed
  identity. Replaced by the wording already used for the parallel
  `magnetizationInfinite_J_zero`: `A.card = 1`, so the power reduces to
  `tanh(β·h)` -- which is exactly what the proof's `Finset.card_singleton`
  rewrite does.
* `correlationAlongExhaustion_J_zero_of_subset` and
  `correlationInfinite_J_zero` called the `J = 0` slice the
  "infinite-temperature slice". Infinite temperature is `β → 0`; `J = 0` is
  the non-interacting slice, and `β` is free in the first while the second
  requires `0 < β` through `Ferromagnetic`. Both now say what
  `MagnetizationInfinite/TrivialSlices.lean` already says.
* `susceptibilityInfinite`: the doc asserted `|χ_Λ(i)| ≤ 2·|Λ|` as an
  available fact. No such bound exists in the tree (that string occurs
  nowhere else). Replaced by the provable point the sentence was making --
  `susceptibility` sums `truncated2` over the volume, so the summand count
  grows with the stage and no stage-uniform bound is proved here.
* `susceptibilityInfinite_le_abs_h`: cited `ciSup_le_ciSup`, which does not
  exist at this mathlib pin. The proof applies `ciSup_mono`.

Comment-only.

Refs #5017

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* `partitionFunctionΛ_high_temp_expansion_h_zero_closed_evenSubgraphs`
  carried an odd number of `**` markers, so its bold span did not close
  where it appeared to. Stray marker removed.
* Declaration docs across `Analyticity*` use `pFE`, `vdSum` and `ε(t)` as
  if they named definitions. `vdPolymerFamilies_sum` and its `.erase ∅`
  variant have no definition at all -- they are written out in full in
  every statement -- and neither `pFE` nor `vdSum` is introduced anywhere.
  Each affected module header now carries the expansion and says these are
  prose shorthands rather than library names, extending the legend device
  the same headers already use for `Ξ` and `ε`.

`AnalyticityLambdaMayerRecurrenceEpsilon` and
`AnalyticityLambdaMayerPfeEdgeBounds` are unchanged: their headers already
introduce `ε t` as a shorthand with no definition behind it, which is the
only shorthand their declaration docs use.

Comment-only.

Refs #5019

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
`partitionFunctionΛ_high_temp_expansion_h_zero_upper_bound` was documented
as a "ℤ^d wrapper". `#check` shows it is stated for an arbitrary
`G : SimpleGraph V` over an arbitrary `V` with `Λ : Finset V`; nothing in
its signature or proof mentions `latticeGraph`, `cubicExhaustion` or any
other ℤ^d construct. In the `AmbientLattice/` tree ℤ^d vocabulary is what
has to be absent, since the layer is graph-generic and the specializations
live downstream in `Concrete/`.

Reworded to the form its siblings in the same file already use, naming the
wrapped `IsingModel.partitionFunction_high_temp_expansion_h_zero_upper_bound`.
The provenance token in the sentence is re-emitted unchanged. Comment-only.

Refs #5022

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
difference is not a ratio

* `freeEnergyInfinite_high_temp_h_zero_upper_bound_exp_uniform` was
  advertised as "globally tighter than `freeEnergyInfinite_le_uniform_upper_bound`
  at `h = 0` (the cosh-based bound)". Both claims are wrong. The right-hand
  sides are the same real number under this theorem's hypotheses --
  `log 2 + |β|·(|J|·c + |0|) = log 2 + β·J·c` for `0 ≤ J`, `0 < β`, checked
  in Lean -- and the named lemma's conclusion contains no `Real.cosh` at
  all; `cosh` enters only through the lower bound used for coboundedness.
* `freeEnergyInfinite_high_temp_h_zero_ratio_bound` and its `_beta_zero`
  companion are headlined as "ratio upper bound" while their conclusions
  bound a difference, which their own doc bodies display two lines below.
  Both headlines corrected, each noting that the `_ratio_bound` in the name
  does not describe the statement.

Renames are a separate decision and are not made here. Comment-only.

Refs #5026

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…unds do exist

Round-1 review follow-up on this branch's own prose fixes.

docs/index.md, the #4333 row:
* the title asserted it discharges the section 17.5 `hprofile` while the body
  denied it; retitle to the direct-path rate and to the engine's ratio
  hypothesis, matching the body;
* "never by an equality" was false: `latticeMass_one_eq_correlationMass` proves
  `latticeMass 1 (cubicExhaustion 1) = ofReal(correlationMass (beta*J))` with
  `correlationMass a = -log tanh a`. State the true shape: upper bounds only for
  general `d` (`latticeMass_le_neg_log_tanh_betaJ`, bundled in
  `latticeMass_two_sided_bound`, plus the sharper on-axis inequality), equality
  in `d = 1` only;
* the `hprofile` binder is a fixed radius in #4330/#4331 but the pair distance
  in #4332; the rate, not the radius, is what separates them, so replace the
  hedge with the source module's own ruling that this bound is strictly weaker;
* the rate-agnostic engine's `hratio` carries no rate; #4333 discharges the
  profile bound that supplies it.

docs/index.md, the #4334 row: `hprofile` named two different objects in one row;
the second occurrence is now described as the engine's ratio hypothesis.

`MagnetizationInfiniteSusceptibility.lean`: the claim that no stage-uniform
bound exists and that `susceptibility_nonneg` is the only sign/size fact is
refuted by `susceptibilityAlongExhaustion_le_of_high_temp`,
`susceptibilityAlongExhaustion_bddAbove_latticeGraph_of_high_temp` (which
discharges the `BddAbove` hypothesis this same docstring points at) and
`susceptibilityInfinite_J_zero`. Also align "grows" with the module header's
"nondecreasing".

`FiniteRegionPseudoMassDistContinuity.lean`: the global envelope reaches
`latticeMass` from below with no constant
(`globalPseudoMassDist_le_latticeMass`); only the reverse direction carries one.

Terminology: "faithful" named the radius elsewhere in the tree but was also
used for the tanh rate; the rate is now uniformly "direct-path" across
`UnconditionalFiniteRegionLipschitz.lean`, `MassContinuityPairMassUpperIcc.lean`
and their `docs/index.md` rows.

Shorthand legends: cover `vdSum_tanh`, the parenthesised-activity forms and the
section comments that use them, and introduce the forms in the two Mayer
modules that used them without one.

Comment-only in Lean; `lake build` clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ld bound is not an |h| bound

Row 1901 (#4333) in docs/index.md compared the direct-path rate
`-log tanh(betaJ)` with the Simon-Lieb rate `-log(betaJ*2d)` and concluded
"strictly weaker, does not discharge" for all of #4330-#4332. A rate-only
comparison closes only at a common radius, which is #4332's
`latticeDistance d x z`. In #4330/#4331 the radius `rho` is a free variable,
and `pseudoMassG a r t = 2*exp(-(t*r))/(1+(t*r)^a)` sees rate and radius only
through the product `t*r`, so the theorem does supply their binder at every
radius with `rho*(-log(betaJ*2d)) >= dist x z*(-log tanh(betaJ))` -- for
instance at every `rho >= 2*dist x z`, where the criterion reads
`(betaJ*2d)^2 <= tanh(betaJ)` and the window gives it with room to spare.
The row now scopes the strict-weakening to #4332 and states the product
criterion for the free-radius pair; the row title carries the matching
"uniformly in its radius" qualifier. The source module
`UnconditionalProfileLower.lean` already scoped this correctly.

`AmbientLattice/MagnetizationInfiniteSusceptibility.lean` claimed that
`susceptibilityAlongExhaustion_bddAbove_latticeGraph_of_high_temp` discharges
the `BddAbove` hypothesis of `susceptibilityInfinite_le_abs_h`. The provider
concludes `BddAbove` at `<J, 0, beta>` and the consumer asks for it at
`<J, |h|, beta>`, so it applies only at `h = 0`, where that comparison is an
identity. The docstring now states that scope.

Comment-only in Lean; `lake build` clean, `audit_gate.py --full` PASS,
header-claim ratchet 151/79 unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…he distance

The row's trailing clause "does not imply it at smaller rho" attaches, on its
nearest-antecedent reading, to the example radius 2*dist x z, where it is false:
the rate ratio (-log tanh(beta*J))/(-log(beta*J*2d)) stays below 1.54 on the
window, so every rho in [dist*ratio, 2*dist) already discharges the binder.
Attach the negation to the criterion itself, and state the 2*dist reduction at
the radius where it is an equivalence rather than as the criterion at large.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@phasetr
phasetr marked this pull request as ready for review August 11, 2026 15:35
@phasetr
phasetr merged commit 6d63a47 into main Aug 11, 2026
9 of 10 checks passed
@phasetr
phasetr deleted the docs/4984-errata-pr1-false-claims branch August 11, 2026 15:36
phasetr added a commit that referenced this pull request Aug 12, 2026
… pinpoints) (#5033)

docs(errata): PR-A of #5032 — mechanical citation re-anchoring (items 1/2/3/4/5b/6)

What: re-anchors 55 doc-comment / `docs/index.md` citation sites across 20 files
to their correct source (Aizenman 1982 §2/§3/§9, GJ Cor 4.3.4 p. 62, GJ Thm
4.1.3 for GKS-II, FFS eqs. (9.35)/(9.36) as displayed equations not theorems,
plus 2 pre-existing GKS-II/GJ-Prop-4.2.1 mislabels), plus a proactive adjunct
sweep of the same Aizenman-§4 misattribution class found while touching the
random-current tree (10 lines / 2 files, none of items 1-6's enumerated sites).
Two round-1-review fixes are folded in: a line-break-straddling `§4` residue
in `SourcefreeConnectionEdgeEmptyLeg.lean` and a double `Eqs. (4.3)-(4.10)`
fragment on `docs/index.md:1780`. Comment/prose only — verified byte-identical
after Lean-comment stripping on all 19 changed `.lean` files; no proof term,
statement, or import changed (AC4).

Deliberately excluded (PR-B's scope, per the #5032 scoping freeze): item 5
(FV "Prop 9.31", 31 lines/13 files — Friedli-Velenik does not contain this
result at all) and item 7f (GJ §5.1 mislabeled as the Simon-Lieb anchor,
28 lines — Glimm-Jaffe never states the Simon-Lieb inequality either). Both
require a `dev-research` dispatch to establish the correct primary-literature
anchor before any line is edited, which is a content decision, not a
clerical one. Also excluded and recorded for PR-B, found during this PR's
round-2 review: Med-3 (8 `docs/index.md` rows, lines 1772-1781, now pin a
stale `Lemma 9.2/9.3, §9` anchor after this PR's Lean-header re-anchoring
moved the underlying modules elsewhere — needs row-by-row resolution, not a
blanket replace, since the same anchor is correct on the separate
`ClusterConditioning*` rows) and Low-3 (FFS "Ch. 12" used as a descriptor for
backbone-tail/OZ material the chapter does not contain — needs the FFS PDF
extracted first).

Why: three prior campaign PRs (#5030, #5031) left this misattribution class
under-inventoried (#5032's fresh `rg` found the correction comments'
"28 sites" for item 1 was itself an undercount by 9, and item 4's "8 lines"
missed a continuation line) and the citations point readers checking the
proof sketches against the wrong theorem numbers, equation ranges, and even
the wrong book. #5032's scoping freeze fixed the counts and split the
9-item inventory into a mechanical PR (this one, correct target already
established) and a research-gated PR (PR-B, correct target requires reading
primary literature).

Verified: 2 independent review rounds (`dev-review` + Codex `codex exec`,
full agreement both rounds, zero divergence) each re-checked every new
anchor against the primary PDFs directly (Aizenman 1982, GJ, FFS), reran a
line-break-insensitive 6-class residue scan (0/0/0/0/0/0 at HEAD vs.
37/11/8/15/8/4 on main), reran AC4 comment-only diffing, and reran the
anti-scope-creep gates (`9.31` 31->31, `§5.1` 221->221, `3.45` 111->110 with
only the permitted site changed). `lake build` green (4944 jobs, 0
warnings), `scripts/citation_audit.py` and `scripts/audit_gate.py --full`
both PASS, zero Japanese characters in public docs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
phasetr added a commit that referenced this pull request Aug 13, 2026
docs: replace declaration provenance with semantic references

Resolve the remaining portions of #5019 and #5026 by removing workflow
step numbers, issue IDs, and PR numbers from declaration documentation.

Declaration docs now describe current semantic dependencies instead of the
change sequence that introduced them. Where a dependency matters, replace the
opaque provenance with its theorem name, including
freeEnergyAlongExhaustion_le_uniform_upper_bound,
freeEnergyInfinite_high_temp_h_zero_deviation_bound_exp,
log_partitionFunction_sum, and log_partitionFunction_map_equiv. Preserve the
Glimm-Jaffe section/theorem attribution and all mathematical explanations.

The live-main Analyticity population was 26 rather than the original 31 because
#5030 had already rewritten part of it. The AmbientLatticeSum sweep also found
the same defect class in adjacent InducedUnion and PerStageIncrement docs, so
clean those direct layer dependencies in this commit. The final bounded scan of
AmbientLattice/Analyticity*.lean, AmbientLatticeSum/, and the AmbientLatticeSum
root modules contains no PR, issue, bare task, or Step-number provenance.

Also resolve #5026 E4: delete the source-local "partial to Done" progress
transition, and replace the stale promise of future translation-invariant
instances with the current DisjointTowerHypotheses.of_J_zero and
DisjointTowerHypotheses.of_beta_zero constructors and the general direct-field
route. Progress status remains owned by docs/index.md.

History inspection via git log -S and blame shows this prose was carried through
the Analyticity split at 922a5b2 and AmbientLatticeSum splits at 01e6f84 and
1002f3a3. No Lean term, declaration signature, import, or dependency changes.

An independent first review caught E4 as an omitted issue criterion. After the
fix, a second exact-head review passed with no actionable finding.

Verification: Nix lake build IsingModel passed all 4943 jobs; the full audit
passed over 1921 Lean files with all 13 capstones limited to propext,
Classical.choice and Quot.sound; the header ratchet remained 150/79; bounded
provenance searches and git diff --check passed; independent exact-head review
reported no actionable finding.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant